<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>153js垃圾回收机制GC</title>
</head>

<body>
  <h1>153js垃圾回收机制GC</h1>
  <script>
    /*
      一、内存的生命周期
        1 内存分配：声明变量，函数，对象时，系统会自动的为它们分配内存空间。
        2 内存使用：即内存的读写，也就是使用变量，函数，对象的过程。
        3 内存回收：使用完毕，将后续不再使用的变量，函数，对象等占据的内存释放掉。
      注意：
        全局变量一般不会回收(关闭页面回收)。
        局部变量在函数执行完毕或者一直没有用到这个局部变量，会被自动回收。
        执行程序过程中分配的内存由于某些原因无法被释放，叫做内存泄漏。

      二、堆和栈
        1 堆内存
          一般由程序员分配释放，如果程序员不释放，则由js的GC机制回收。引用数据类型存放在堆内存中。
        2 栈内存
          由操作系统自动分配释放，例如：函数的形参，局部变量等。基本数据类型存放在栈内存中。

      三、常用的GC机制算法
        1 标记清除(常用)
        2 引用计数(不推荐)
          缺陷：循环引用
    */
  </script>
</body>

</html>